package com.center.bean;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * @Author dzl
 * @Date 2022/1/17 1:59 下午
 * 对一个Bean 初始化之后/摧毁之前进行一个操作，3中方式
 */
@Component
public class InitBean implements InitializingBean, DisposableBean {
    @Override
    public void destroy() {
        System.out.println("实现DisposableBean接口，对bean摧毁前操作");
    }

    @Override
    public void afterPropertiesSet() {
        System.out.println("实现DisposableBean接口，对bean初始化后操作");
    }

    @PostConstruct
    public void init() {
        System.out.println("注解PostConstruct，对bean初始化后操作");
    }

    @PreDestroy
    public void preDestroy() {
        System.out.println("注解PreDestroy，对bean摧毁前操作");
    }

    public void initMethod() {
        System.out.println("注解initMethod，对bean初始化后操作");
    }

    public void destroyMethod() {
        System.out.println("注解destroyMethod，对bean摧毁前操作");
    }

}
